package com.dragon.modules.yuegou.enums.code;

import com.dragon.common.constant.enums.IBusinessCode;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * 招商错误信息
 * 
 * @author ZSH
 *
 */
public enum CavsCode implements IBusinessCode {

	/**
	 * 该客户已经有其他招商人员跟进
	 */
	FOLLOWED_CUSTOMER_PERSONNEL(29001,"该客户已经有其他招商人员跟进"),

	/**
	 * 请确认相关信息
	 */
	VERIFY_USER_INFO(29002,"请确认相关信息"),
	
	/**
	 * 流程已关闭
	 */
	PROCESS_CLOSE(29003,"流程已关闭"),
	
	/**
	 * 未完成跟进或签约已完成
	 */
	NOT_FOLLOW(29004,"未完成跟进或签约已完成"),
	
	/**
	 * 未完成看场或者跟进已完成
	 */
	PLACE_OR_SIGN(29005,"未完成看场或者跟进已完成"),
	
	/**
	 * 未完成邀约或者看场已完成
	 */
	INVITE_OR_FOLLOW(29006,"未完成邀约或者看场已完成"),
	
	/**
	 * 已完成邀约
	 */
	OUT_PLACE(29007,"已完成邀约"),

	/**
	 * 请确认登录账号
	 */
	CONFIRM_LOGIN_ACCOUNT(29008,"请确认登录账号"),
	
	/**
	 * 不能大于当前时间
	 */
	NOT_GE_PRESENT(29009,"不能大于当前时间"),

	/**
	 * 请确认所在商圈
	 */
	CONFIRM_BUSD_ID(29010,"请确认所在商圈"),

	/**
	 * 用户权限不足
	 */
	INSUFFICIENT_USER_PERMISSIONS(29011,"用户权限不足"),

	/**
	 * 客户不能转让给总领导
	 */
	TOTAL_LEADER_NOT_ALLOWED(29012,"客户不能转让给总领导"),

	/**
	 * 请确认客户信息
	 */
	VERIFY_CUSTOMER_INFO(29013,"请确认客户信息"),

	/**
	 * 客户信息不能转让给本人
	 */
	VERIFY_CUSTOMER_INFO_NOT_PERSONAL(29014,"客户信息不能转让给本人"),

	/**
	 * 请确认客户所属人
	 */
	CONFIRM_CUSTOMER_CHOWN(29015,"请确认客户所属人"),

	/**
	 * 密码格式错误
	 */
	PASSWORD_FORMAT_ERROR(29016,"密码格式错误"),

	/**
	 * 状态码说明
	 */
	TODO(29000,"招商错误信息");
	
	private final Integer code;

	private final String message;

	private CavsCode(Integer code, String message) {
		this.code = code;
		this.message = message;
	}

	public Integer getCode() {
		return code;
	}

	public String getMessage() {
		return message;
	}

	/**
	 * 把code转化为ResponseCode枚举
	 * 
	 * @param code 代码
	 * @return
	 */
	public static CavsCode from(Integer code) {
		if (code == null) {
			return null;
		}
		return CODE_MAP.get(code);
	}

	/**
	 * Code Map for ResponseCode
	 */
	private static final Map<Integer, CavsCode> CODE_MAP = Stream.of(CavsCode.values())
			.collect(Collectors.toMap(CavsCode::getCode, e -> e));
	
}
